package com.zr.service.sys;

import com.zr.exception.BusinessException;
import com.zr.exception.ValidateException;
import com.zr.vo.sys.SysAuth;
import java.util.List;

/**
 * 权限操作 服务层
 */
public interface SysAuthService {
    /**
     * 查询所有权限
     *
     * @return
     */
    List<SysAuth> list();

    /**
     * 删除权限
     *
     * @param id 权限ID
     * @return
     * @throws BusinessException
     */
    int remove(Integer id) throws BusinessException;

    /**
     * 新增权限
     *
     * @param sysAuth
     * @return
     */
    int add(SysAuth sysAuth);

    /**
     * 编辑权限
     *
     * @param sysAuth
     * @return
     * @throws ValidateException 参数检查异常
     */
    int edit(SysAuth sysAuth) throws ValidateException;

    /**
     * 查询当前用户权限（base）
     *
     * @return
     */
    List<SysAuth> listByCurrentUser();

    /**
     * 查询当前用户权限（带子权限）
     *
     * @return
     */
    List<SysAuth> getCurentAuths();

    /**
     * 查询所有父权限）
     *
     * @return
     */
    List<SysAuth> getParents();
}
